package co.edu.uniandes.visual_analytics.utils;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

/**
 * Descarga archivos de la Web
 * 
 * @author Felipe Triana Castaneda
 * @version 1.0
 */
public class FileDownloader {
	/**
	 * Descarga un archivo de la URL 'direccion' y lo escribe en el archivo
	 * 'salida'
	 */
	public static void descargar(String direccion, File salida)
			throws IOException {
		@SuppressWarnings("resource")
		FileOutputStream fos = new FileOutputStream(salida);
		String input = descargar(direccion);
		fos.write(input.getBytes());
	}

	/**
	 * Devuelve una cadena de texto con el contenido de la URL 'direccion'
	 */
	public static String descargar(String direccion) throws IOException {
		URL url = new URL(direccion);
		URLConnection urlCon = url.openConnection();
		BufferedReader in = null;
		try {
			in = new BufferedReader(new InputStreamReader(
					urlCon.getInputStream()));
		} catch (FileNotFoundException ex) {
			return "";
		}
		String inputLine;
		String input = "";
		while ((inputLine = in.readLine()) != null)
			input += inputLine;
		return input;
	}

}
